Computer architectures having multiple tiers of memory or storage in a hierarchy are important in modern computational strategies that leverage data locality to reduce average data access time, improving overall performance and energy efficiency. Multi-tiered systems may include as different tiers either memory or storage. Examples of memory tiers in a multi-tiered system may include Static Random Access Memory (“SRAM”) and Dynamic Random Access Memory (“DRAM”), which may be organized as different levels of cache and main memory. Examples of storage tiers in a multi-tiered system may include Solid State Drives (“SSD”), magnetic disks and data tapes.
Different memory tiers may provide different trade-offs between different desired memory characteristics. Specifically, the decision of which memory tiers, storage tiers or combinations thereof to employ in a system generally involves tradeoffs between capacity and speed, dictated by cost tradeoffs. Memory tiers with faster performance, for example, typically cost more, and so are oftentimes reserved for specialized tasks, such as cache memory applications. Memory tiers with slower performance, on the other hand, cost less and so are reserved for large data memory applications, such as main memory. In such configurations, the disparate classes of memory are generally manufactured separately, e.g., as separate devices or on separate chips, and located at different segments of the memory architecture.